package lowijs.util.logging;

import java.util.List;

import lowijs.XfDroid.ErrorHandler;
import lowijs.XfDroid.Runner;
import lowijs.XfireClient.IM;
import lowijs.XfireClient.XfireClient;
import lowijs.XfireClient.XfireStatus;
import android.app.ActivityManager.RunningAppProcessInfo;
import android.app.ActivityManager.RunningTaskInfo;

/**
 * This interface allows logging to be enabled or disabled easily. By using an
 * interface which is responsible for handling creation of the messages, there
 * is minimal impact on performance when debug is disabled. 
 * @author Stephen Gaines
 */
public class Logging {
	private static final Logging INSTANCE = new DeveloperLogging();

	public void clientBadVersion() {
	}

	public void clientBeginThread() {
	}

	public void clientClose() {
	}

	public void clientDisconnect() {
	}

	public void clientEnterThread() {
	}

	public void clientException(String message, Throwable t) {
		ErrorHandler.write(t);
	}

	public void clientExistingThread() {
	}

	public void clientExitThread() {
	}

	public void clientLogin() {
	}

	public void clientLoginFailed() {
	}

	public void clientNewVersion(int version, int oldVersion) {
	}

	public void clientRecievedPacket(int type) {
	}

	public void clientUnknownCode(int type) {
	}

	public void clientBooted() {
	}

	public void reconnectorEndThread() {
	}

	public void reconnectorNetworkConnected() {
	}

	public void reconnectorNetworkDisconnected() {
	}

	public void reconnectorNoNetwork() {
	}

	public void reconnectorReconnected() {
	}

	public void reconnectorStartThread() {
	}

	public void reconnectorToManyTries() {
	}

	public void serviceHandleEvent(int eventType) {
	}

	public void serviceReconenctFailed() {
	}

	public void serviceReconencted() {
	}

	public void serviceStopSelf() {
	}

	public void serviceStopping(Runnable runner) {
	}

	public void clientProcess(List<RunningAppProcessInfo> procs) {
	}

	public void serviceDC() {
	}

	public void serviceLogoff() {
	}

	public void clientTasks(List<RunningTaskInfo> tasks) {
	}

	public void clientReconnected(boolean reconnectStatus) {
	}

	public void serviceStarting(Runner runner) {
	}

	public void badChannel(IM im) {
	}

	/*
	public void clientConnected() {
	}
	 */

	public void clientDisconnected() {
	}

	public void clientSatusChanged(XfireStatus status) {
	}

	public void serviceHasNoClientRunner() {
	}

	public void serviceNotRunning() {
	}

	public void clientCreated(XfireClient xc) {
	}

	public void serviceCreated() {
	}

	public void serviceDestroyed() {
	}

	public void serviceStarted() {
	}

	public void friendsOnContextItemSelected() {
	}

	public void friendsOnCreate() {
	}

	public void friendsOnCreateOptionsMenu() {
	}

	public void friendsOnDestroy() {
	}

	public void friendsOnOptionsItemSelected() {
	}

	public void friendsOnRestoreInstanceState() {
	}

	public void friendsOnSaveInstanceState() {
	}

	public void friendsOnStart() {
	}

	public void friendsOnStop() {
	}

	public void friendsShowLogin() {
	}

	public void friendsShowReconnect() {
	}

	public void lostConnection() {
	}

	public void loggingOff() {
	}

	public void disconnectingClient() {
	}

	public void stoppingService() {
	}

	public void startConnection() {
	}

	public void connectToXfire() {
	}

	public void performLogin() {
	}

	public void clientFinished() {
	}

	public void pingFinished() {
	}

	public void pingStopped() {
	}

	public void pingFailed(Throwable t) {
	}

	public static Logging getLogging() {
		return INSTANCE;
	}
}
